from flask import Flask, render_template, jsonify
from flask_cors import CORS
import pymysql

#   Flask(__name__):初始化一个新的flask web应用
app = Flask(__name__)
#   CORS(app)意味着使用flask_cors扩展flask应用以允许跨源请求，也就是浏览器和服务器资源允许共享
CORS(app)

#   定义从mysql读取数据的方法1
def get_data(sql):
    #   建立与mysql的连接
    connect=pymysql.connect(host='192.168.40.110',user='root',password='123456',database='llp',charset='utf8')
    #   创建游标对象
    cursor=connect.cursor()
    #   执行sql语句，返回查询结果
    cursor.execute(sql)
    #   fetchall()函数返回一个列表，列表里面的元素为元组，每个元组代表一行数据
    data=cursor.fetchall()
    #   将列表元组格式的数据转化为列表包裹字典格式的数据
    data_dict=[]
    for x in data:
        if len(x)==2:
            #   由于词云图有严厉的要求，这里的key必须使用name和value
            data_dict.append({
                "name":x[0],
                "value":x[1]
            })
        else:
            data_dict.append({
                "key0":x[0],
                "key1":x[1],
                "key2":x[2]
            })

    return data_dict





#   使用函数拿到mysql里面的数据
data1=get_data("select * from DataAnalysis1 order by number desc limit 10;")
data2=get_data("select * from DataAnalysis2  where position_number >30   order by avg_money desc;")
data3=get_data("select * from DataAnalysis6;")
data4=get_data("select * from DataAnalysis5 ;")
data5=get_data("select ModeOfOperation,sum(number) from DataAnalysis3 group by ModeOfOperation;")
data6=get_data("select demand01,sum(number) from DataAnalysis4 group by demand01;")





# Flask 路由
@app.route('/')
def index():
    # 这里你可以根据需要渲染一个包含所有图表链接的页面
    #   也就是图表展示在哪个web页面上
    #   table1是在web页面接收数据的变量(使用"{{table1|tojson}}"  可以拿到列表里面嵌套json的数据)
    return render_template('大屏展示.html',table1=data1,table2=data2,table3=data3,table4=data4,table5=data5,table6=data6)



#   下面写的0.0.0.0是代表任意主机都可以连接访问
if __name__ == '__main__':
    app.run(debug=True,host="0.0.0.0")